﻿using System;
using System.Collections.Generic;
using System.Text;

namespace vJine.Core.ORM.Adapters {
    public partial class MySQL : IDbAdapter<MySQL> {
        static List<string> _KeyWords = new List<string>();
        /// <summary>
        /// http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
        /// </summary>
        static void Init_Keywords() {
            _KeyWords.Add("ADD");
            _KeyWords.Add("DEC");
            _KeyWords.Add("ALL");
            _KeyWords.Add("ALTER");
            _KeyWords.Add("ANALYZE");
            _KeyWords.Add("AND");
            _KeyWords.Add("AS");
            _KeyWords.Add("ASC");
            _KeyWords.Add("ASENSITIVE");
            _KeyWords.Add("BEFORE");
            _KeyWords.Add("BETWEEN");
            _KeyWords.Add("BIGINT");
            _KeyWords.Add("BINARY");
            _KeyWords.Add("BLOB");
            _KeyWords.Add("BOTH");
            _KeyWords.Add("BY");
            _KeyWords.Add("CALL");
            _KeyWords.Add("CASCADE");
            _KeyWords.Add("CASE");
            _KeyWords.Add("CHANGE");
            _KeyWords.Add("CHAR");
            _KeyWords.Add("CHARACTER");
            _KeyWords.Add("CHECK");
            _KeyWords.Add("COLLATE");
            _KeyWords.Add("COLUMN");
            _KeyWords.Add("CONDITION");
            _KeyWords.Add("CONNECTION");
            _KeyWords.Add("CONSTRAINT");
            _KeyWords.Add("CONTINUE");
            _KeyWords.Add("CONVERT");
            _KeyWords.Add("CREATE");
            _KeyWords.Add("CROSS");
            _KeyWords.Add("CURRENT_DATE");
            _KeyWords.Add("CURRENT_TIME");
            _KeyWords.Add("CURRENT_TIMESTAMP");
            _KeyWords.Add("CURRENT_USER");
            _KeyWords.Add("CURSOR");
            _KeyWords.Add("DATABASE");
            _KeyWords.Add("DATABASES");
            _KeyWords.Add("DAY_HOUR");
            _KeyWords.Add("DAY_MICROSECOND");
            _KeyWords.Add("DAY_MINUTE");
            _KeyWords.Add("DAY_SECOND");
            _KeyWords.Add("DECIMAL");
            _KeyWords.Add("DECLARE");
            _KeyWords.Add("DEFAULT");
            _KeyWords.Add("DELAYED");
            _KeyWords.Add("DELETE");
            _KeyWords.Add("DESC");
            _KeyWords.Add("DESCRIBE");
            _KeyWords.Add("DETERMINISTIC");
            _KeyWords.Add("DISTINCT");
            _KeyWords.Add("DISTINCTROW");
            _KeyWords.Add("DIV");
            _KeyWords.Add("DOUBLE");
            _KeyWords.Add("DROP");
            _KeyWords.Add("DUAL");
            _KeyWords.Add("EACH");
            _KeyWords.Add("ELSE");
            _KeyWords.Add("ELSEIF");
            _KeyWords.Add("ENCLOSED");
            _KeyWords.Add("ESCAPED");
            _KeyWords.Add("EXISTS");
            _KeyWords.Add("EXIT");
            _KeyWords.Add("EXPLAIN");
            _KeyWords.Add("FETCH");
            _KeyWords.Add("FLOAT");
            _KeyWords.Add("FLOAT4");
            _KeyWords.Add("FLOAT8");
            _KeyWords.Add("FOR");
            _KeyWords.Add("FORCE");
            _KeyWords.Add("FOREIGN");
            _KeyWords.Add("FROM");
            _KeyWords.Add("FULLTEXT");
            _KeyWords.Add("GOTO");
            _KeyWords.Add("GRANT");
            _KeyWords.Add("GROUP");
            _KeyWords.Add("HAVING");
            _KeyWords.Add("HIGH_PRIORITY");
            _KeyWords.Add("HOUR_MICROSECOND");
            _KeyWords.Add("HOUR_MINUTE");
            _KeyWords.Add("HOUR_SECOND");
            _KeyWords.Add("IF");
            _KeyWords.Add("IGNORE");
            _KeyWords.Add("IN");
            _KeyWords.Add("INDEX");
            _KeyWords.Add("INFILE");
            _KeyWords.Add("INNER");
            _KeyWords.Add("INOUT");
            _KeyWords.Add("INSENSITIVE");
            _KeyWords.Add("INSERT");
            _KeyWords.Add("INT");
            _KeyWords.Add("INT1");
            _KeyWords.Add("INT2");
            _KeyWords.Add("INT3");
            _KeyWords.Add("INT4");
            _KeyWords.Add("INT8");
            _KeyWords.Add("INTEGER");
            _KeyWords.Add("INTERVAL");
            _KeyWords.Add("INTO");
            _KeyWords.Add("IS");
            _KeyWords.Add("ITERATE");
            _KeyWords.Add("JOIN");
            _KeyWords.Add("KEY");
            _KeyWords.Add("KEYS");
            _KeyWords.Add("KILL");
            _KeyWords.Add("LABEL");
            _KeyWords.Add("LEADING");
            _KeyWords.Add("LEAVE");
            _KeyWords.Add("LEFT");
            _KeyWords.Add("LIKE");
            _KeyWords.Add("LIMIT");
            _KeyWords.Add("LINES");
            _KeyWords.Add("LOAD");
            _KeyWords.Add("LOCALTIME");
            _KeyWords.Add("LOCALTIMESTAMP");
            _KeyWords.Add("LOCK");
            _KeyWords.Add("LONG");
            _KeyWords.Add("LONGBLOB");
            _KeyWords.Add("LONGTEXT");
            _KeyWords.Add("LOOP");
            _KeyWords.Add("LOW_PRIORITY");
            _KeyWords.Add("MATCH");
            _KeyWords.Add("MEDIUMBLOB");
            _KeyWords.Add("MEDIUMINT");
            _KeyWords.Add("MEDIUMTEXT");
            _KeyWords.Add("MIDDLEINT");
            _KeyWords.Add("MINUTE_MICROSECOND");
            _KeyWords.Add("MINUTE_SECOND");
            _KeyWords.Add("MOD");
            _KeyWords.Add("MODIFIES");
            _KeyWords.Add("NATURAL");
            _KeyWords.Add("NO_WRITE_TO_BINLOG");
            _KeyWords.Add("NOT");
            _KeyWords.Add("NULL");
            _KeyWords.Add("NUMERIC");
            _KeyWords.Add("ON");
            _KeyWords.Add("OPTIMIZE");
            _KeyWords.Add("OPTION");
            _KeyWords.Add("OPTIONALLY");
            _KeyWords.Add("OR");
            _KeyWords.Add("ORDER");
            _KeyWords.Add("OUT");
            _KeyWords.Add("OUTER");
            _KeyWords.Add("OUTFILE");
            _KeyWords.Add("PRECISION");
            _KeyWords.Add("PRIMARY");
            _KeyWords.Add("PROCEDURE");
            _KeyWords.Add("PURGE");
            _KeyWords.Add("READ");
            _KeyWords.Add("READS");
            _KeyWords.Add("REAL");
            _KeyWords.Add("REFERENCES");
            _KeyWords.Add("REGEXP");
            _KeyWords.Add("RELEASE");
            _KeyWords.Add("RENAME");
            _KeyWords.Add("REPEAT");
            _KeyWords.Add("REPLACE");
            _KeyWords.Add("REQUIRE");
            _KeyWords.Add("RESTRICT");
            _KeyWords.Add("RETURN");
            _KeyWords.Add("REVOKE");
            _KeyWords.Add("RIGHT");
            _KeyWords.Add("RLIKE");
            _KeyWords.Add("SCHEMA");
            _KeyWords.Add("SCHEMAS");
            _KeyWords.Add("SECOND_MICROSECOND");
            _KeyWords.Add("SELECT");
            _KeyWords.Add("SENSITIVE");
            _KeyWords.Add("SEPARATOR");
            _KeyWords.Add("SET");
            _KeyWords.Add("SHOW");
            _KeyWords.Add("SMALLINT");
            _KeyWords.Add("SONAME");
            _KeyWords.Add("SPATIAL");
            _KeyWords.Add("SPECIFIC");
            _KeyWords.Add("SQL");
            _KeyWords.Add("SQL_BIG_RESULT");
            _KeyWords.Add("SQL_CALC_FOUND_ROWS");
            _KeyWords.Add("SQL_SMALL_RESULT");
            _KeyWords.Add("SQLEXCEPTION");
            _KeyWords.Add("SQLSTATE");
            _KeyWords.Add("SQLWARNING");
            _KeyWords.Add("SSL");
            _KeyWords.Add("STARTING");
            _KeyWords.Add("STRAIGHT_JOIN");
            _KeyWords.Add("TABLE");
            _KeyWords.Add("TERMINATED");
            _KeyWords.Add("THEN");
            _KeyWords.Add("TINYBLOB");
            _KeyWords.Add("TINYINT");
            _KeyWords.Add("TINYTEXT");
            _KeyWords.Add("TO");
            _KeyWords.Add("TRAILING");
            _KeyWords.Add("TRIGGER");
            _KeyWords.Add("UNDO");
            _KeyWords.Add("UNION");
            _KeyWords.Add("UNIQUE");
            _KeyWords.Add("UNLOCK");
            _KeyWords.Add("UNSIGNED");
            _KeyWords.Add("UPDATE");
            _KeyWords.Add("UPGRADE");
            _KeyWords.Add("USAGE");
            _KeyWords.Add("USE");
            _KeyWords.Add("USING");
            _KeyWords.Add("UTC_DATE");
            _KeyWords.Add("UTC_TIME");
            _KeyWords.Add("UTC_TIMESTAMP");
            _KeyWords.Add("VALUES");
            _KeyWords.Add("VARBINARY");
            _KeyWords.Add("VARCHAR");
            _KeyWords.Add("VARCHARACTER");
            _KeyWords.Add("VARYING");
            _KeyWords.Add("WHEN");
            _KeyWords.Add("WHERE");
            _KeyWords.Add("WHILE");
            _KeyWords.Add("WITH");
            _KeyWords.Add("WRITE");
            _KeyWords.Add("XOR");
            _KeyWords.Add("YEAR_MONTH");
            _KeyWords.Add("ZEROFILL");
            _KeyWords.Add("FALSE");
            _KeyWords.Add("TRUE");
        }
    }
}
